Windows can sometimes be focused, or appear to be focused, without being
at the exact top of the stack, for example in the case of override-redirect
windows, or with attached modal dialogs. In that case, we should not
try to minimize them (as it creates a loop that makes it impossible to restore
the window)
https://bugzilla.gnome.org/show_bug.cgi?id=694905
if (primaryWasInFullscreen != this.primaryMonitor.inFullscreen) {
let windows = this._getWindowActorsForWorkspace(global.screen.get_active_workspace());
- for (let i = 0; i < windows.length - 1; i++) {
+ for (let i = 0; i < windows.length; i++) {
let window = windows[i];
let metaWindow = window.meta_window;
if (!metaWindow.is_on_primary_monitor())
continue;
- // Minimize monitor sized windows
- if (metaWindow.is_monitor_sized())
+ // Minimize monitor sized windows that are not focused
+ if (metaWindow.is_monitor_sized() &&
+ !metaWindow.appears_focused)
metaWindow.minimize();
}
this.emit('primary-fullscreen-changed', this.primaryMonitor.inFullscreen);